import os

basedir = os.path.abspath(os.path.dirname(__file__))

class Config(object):
    # Flask及其一些扩展使用密钥的值作为加密密钥，用于生成签名或令牌。
    # Flask-WTF插件使用它来保护网页表单免受名为Cross-Site Request Forgery或CSRF（发音为“seasurf”）的恶意攻击
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
    # SQLAlchemy不只是某一款数据库软件的ORM，而是支持包含MySQL、PostgreSQL和SQLite在内的很多数据库软件。
    # Flask-SQLAlchemy插件从SQLALCHEMY_DATABASE_URI配置变量中获取应用的数据库的位置
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
        'sqlite:///' + os.path.join(basedir, 'app.db')
    # 数据发生变更之后是否发送信号给应用，我不需要这项功能，因此将其设置为False
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # 电子邮件发送错误
    # 邮件服务器的信息五个配置变量来源于环境变量
    # 如果电子邮件服务器没有在环境中设置，那么我将禁用电子邮件功能 
    # 服务器和端口，
    MAIL_SERVER = os.environ.get('MAIL_SERVER')
    MAIL_PORT = int(os.environ.get('MAIL_PORT') or 25)
    # 启用加密连接的布尔标记
    MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS') is not None
    # 可选的用户名和密码
    MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
    MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
    # ADMINS配置变量是将收到错误报告的电子邮件地址列表
    ADMINS = ['Testleung01@gmail.com', 'your-email@example.com']
    
    # 每页展示的数据列表长度
    POSTS_PER_PAGE = 3
